/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.DAO;

import java.util.List;
import javax.transaction.SystemException;
import javax.transaction.Transaction;
import model.EmpleadoBean;
import org.hibernate.Session;
import util.HibernateUtil;

/**
 *
 * @author Tarde
 */
public class EmpleadoDao {

    public void createAndStoreEmpleado(EmpleadoBean employee) throws IllegalStateException, SystemException {
        //Obtener la sesión actual
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        //Comenzar la transacción
        Transaction t = (Transaction) session.beginTransaction();

        try {
            //Almacenarlo                     
            session.save(employee);
            //Confirmar transacción
            t.commit();
        } catch (Exception e) {
            t.rollback();
        }

    }

    public List listAllEmpleados() {
        //Obtener la sesión actual
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        //Comenzar la transacción
        session.beginTransaction();
        //Obtener la lista de eventos
        List result = session.createQuery("from EmpleadoBean").list();
        //Confirmar transacción
        session.getTransaction().commit();
        return result;
    }

    public void deleteEmpleados(EmpleadoBean employee) {        
        //Obtener la sesión actual
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        //Comenzar la transacción
        session.beginTransaction();
        //Obtener la lista de eventos
        session.delete(employee);
        //Confirmar transacción
        session.getTransaction().commit();
    }

    public void updateEmpleados(EmpleadoBean employee) {
        //Obtener la sesión actual
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        //Comenzar la transacción
        session.beginTransaction();
        //Obtener la lista de eventos
        session.update(employee);
        //Confirmar transacción
        session.getTransaction().commit();
    }
}
